package model

// todo 公共函数包应该要优化下，使用子目录区分。避免命名冲突

//分页器结构体
type Pagination struct {
	Page      int `form:"page" json:"page"`
	PageSize  int `form:"pageSize" json:"pageSize"`
	Offset    int
	Total     int64
	PageCount int
}

// 默认分页器
var DefaultPager = Pagination{
	Page:      1,
	PageSize:  10,
	Offset:    0,
	Total:     0,
	PageCount: 0,
}

// todo 设计一个通用的分页函数，避免每次去计算 offset 和 total 和 pageCount
func (p *Pagination) GetOffset() int {
	if p.Page <= 0 {
		p.Page = 1
	}
	if p.PageSize <= 0 {
		p.PageSize = 10
	}
	p.Offset = (p.Page - 1) * p.PageSize
	return p.Offset
}
